para mtemp0
   if .not. impressora()
      retu(2)
   endif
   legal(8,6,22,77,'Declaracao de Retencao - IRPJ')
   mano      := 0
   mcliente  := 0
   mretencao := 0
   @ 10,8 say 'Cliente      :' get mcliente pict '999999'
   read
   if empty(mcliente) .or. lastkey() = 27
      retu  
   endif
   sele clientes
   seek mcliente
   if eof()
      mensa(10,'Cliente nao cadastrado',2)
      retu
   endif
   @ 10,8 say 'Cliente      : ' + str(mcliente,6) + ' ' + nome   
   @ 11,8 say 'Ano          :' get mano      pict '9999'
   @ 12,8 say 'Retencao     :' get mretencao pict '9999'
   read
   sele retencao
   seek mretencao
   if eof()
      mensa(10,'Retencao nao cadastrada',2)
      retu
   endif
   mcodigore = str(codreceita,4) + space(6) + nomereceit
   if mtemp0 = 'A'  
      sele notasa
      sort on numero  to retirpj for mcliente = cliente .and. cancela # 'S'
   else 
      sele notass
      sort on numero  to retirpj for mcliente = cliente .and. cancela # 'S'
   endif
   sele 100
   use retirpj
   dele all for mano # year(recebto)
   index on recebto to itemp
   mtitulo = .t.
   mpagina = 1
   ttotal := tvalorret := 0        
   go top
   while .not. eof()
    if mretencao # retencao1 .and. mretencao # retencao2 .and. mretencao # retencao3
       skip
       loop
    endif
    set devi to printer
    if mtitulo
       sele clientes
       @ prow()+1,2  say chr(18)
       @ prow()+3,2  say 'MINISTERIO DA FAZENDA'
       @ prow()+1,2  say 'SECRETARIA DA RECEITA FEDERAL'
       @ prow()+2,2  say 'COMPROVANTE  ANUAL  DE  RENDIMENTOS PAGOS OU  CREDITADOS E'
       @ prow()+1,2  say 'DE RETENCAO DE IMPOSTO DE RENDA NA FONTE - PESSOA JURIDICA'
       @ prow()+3,2  say '1. FONTE PAGADORA                                           CNPJ'
       @ prow()+2,5  say left(nome,55) + '  ' + trans(cgc,'@R 99.999.999/9999-99')                
       @ prow()  ,5  say left(nome,55) + '  ' + trans(cgc,'@R 99.999.999/9999-99')                
       @ prow()+2,2  say '2. PESSOA JURIDICA BENEFICIARIA DOS RENDIMENTOS             CNPJ'           
       if mtemp0 = 'A'
          @ prow()+2,5  say 'Brasfort Administracao e Servicos Ltda'
          @ prow()  ,5  say 'Brasfort Administracao e Servicos Ltda'
          @ prow(),62   say '36.770.857/0001-38'
       else               
          @ prow()+2,5  say 'Brasfort Empresa de Seguranca Ltda'
          @ prow()  ,5  say 'Brasfort Empresa de Seguranca Ltda'
          @ prow(),62   say '03.497.401/0001-97'
       endif          

       @ prow()+3,2  say '3. RENDIMENTO E IMPOSTO RETIDO NA FONTE'
       @ prow()+1,2  say chr(15)
       @ prow()+1,6  say 'MES    DO  CODIGO DE DESCRICAO DO RENDIMENTO                                                       RENDIMENTO (R$)    IMPOSTO (R$)'
       @ prow()+1,6  say 'PAGAMENTO  RETENCAO  '                                                                                                           
       @ prow()+1,2  say chr(15)
       mtitulo = .f.
    endif                                                              
    sele retirpj
    do case
       case mretencao = retencao1
            mvalorret = valorret1
       case mretencao = retencao2
            mvalorret = valorret2
       case mretencao = retencao3
            mvalorret = valorret3
       otherwise
            mvalorret = 0
    endcase
    mmes       = month(recebto)
    ttotal    += total
    tvalorret += mvalorret
    mlinha    = mesextenso(recebto) + space(2) 
    mlinha    += mcodigore + space(10)
    mlinha    += trans(ttotal,'99,999,999.99')
    mlinha    += trans(tvalorret,'99,999,999.99')                         
    skip
    if mmes # month(recebto) .or. eof()
       @ prow()+1,6 say mlinha
       * prow()+1,6 say dtoc(recebto) + str(numero,10)
       ttotal := tvalorret := 0
    endif
    if prow() > 56
       eject
       mtitulo = .t.
       mpagina+=1
    endif
   enddo
   @ prow()+4,2  say '4. INFORMACOES COMPLEMENTARES'
   @ prow()+4,2  say '5. RESPONSAVEL PELAS INFORMACOES'
   eject
   set devi to screen
   close retirpj  
retu

function mesextenso(data)
local mtempd, mes
mtempd = month(data)
do case
   case mtempd = 1
        mes    = 'JANEIRO  '
   case mtempd = 2
        mes    = 'FEVEREIRO'
   case mtempd = 3
        mes    = 'MARCO    '  
   case mtempd = 4
        mes    = 'ABRIL    '  
   case mtempd = 5
        mes    = 'MAIO     '        
   case mtempd = 6
        mes    = 'JUNHO    '  
   case mtempd = 7
        mes    = 'JULHO    '      
   case mtempd = 8
        mes    = 'AGOSTO   ' 
   case mtempd = 9
        mes    = 'SETEMBRO '
   case mtempd = 10
        mes    = 'OUTUBRO  '
   case mtempd = 11
        mes    = 'NOVEMBRO '
   case mtempd = 12
        mes    = 'DEZEMBRO '
endcase
retu mes
